package com.fary.security.core.userdetails;

import com.fary.security.core.GrantedAuthority;

import java.io.Serializable;
import java.util.Collection;

public interface UserDetails extends Serializable {

	/**
	 * 权限集合
	 */
	Collection<? extends GrantedAuthority> getAuthorities();

	/**
	 * 密码
	 */
	String getPassword();

	/**
	 * 用户名
	 */
	String getUsername();

	/**
	 * 用户名是否没有过期
	 */
	boolean isAccountNonExpired();

	/**
	 * 用户名是否没有锁定
	 */
	boolean isAccountNonLocked();

	/**
	 * 用户密码是否没有过期
	 */
	boolean isCredentialsNonExpired();

	/**
	 * 账号是否可用(可理解为是否删除)
	 */
	boolean isEnabled();
}